// DeviceDefs.h
//
// MAGEWELL PROPRIETARY INFORMATION
// This file is a part of the XI Series Adapter Develop SDK.
// Nanjing Magewell Electronics Co., Ltd., All Rights Reserved.
//
// THIS SOURCE FILE IS THE PROPERTY OF MAGEWELL AND IS NOT TO 
// BE RE-DISTRIBUTED BY ANY MEANS WHATSOEVER WITHOUT THE EXPRESSED 
// WRITTEN CONSENT OF MAGEWELL.
//
// THIS SOURCE CODE CAN ONLY BE USED UNDER THE TERMS AND CONDITIONS 
// OUTLINED IN THE MAGEWELL LICENSE AGREEMENT.  MAGEWELL GRANTS TO 
// YOU (ONE SOFTWARE DEVELOPER) THE LIMITED RIGHT TO USE THIS SOFTWARE
// ON A SINGLE COMPUTER.
//
// CONTACT INFORMATION:
// james.liu@magewell.com
// http://www.magewell.com/
//
//////////////////////////////////////////////////////////////////////

#pragma once

#ifdef __cplusplus
extern "C"
{
#endif

typedef enum _XI_ADAPTER_MODEL {
	XI_ADAPTER_UNKNOWN,
	XI_ADAPTER_XI006AE,
	XI_ADAPTER_XI100XE,
	XI_ADAPTER_XI102XE,
	XI_ADAPTER_XI200XE,
	XI_ADAPTER_XI200XE_MINI,
	XI_ADAPTER_XI204XE,
	XI_ADAPTER_XI104AE,
	XI_ADAPTER_XI102XE_HD,
	XI_ADAPTER_XI104XUSB,
	XI_ADAPTER_XI100DE_HDMI_4K,
	XI_ADAPTER_XI200DE_HDMI,
	XI_ADAPTER_XI400DE_HDMI,
	XI_ADAPTER_XI100XE_PRO,
	XI_ADAPTER_XI100XUSB_PRO,
	XI_ADAPTER_XI200XUSB,
	XI_ADAPTER_XI006AUSB,
	XI_ADAPTER_XI100DE_SDI,
	XI_ADAPTER_XI200DE_SDI,
	XI_ADAPTER_XI400DE_SDI,
	XI_ADAPTER_XI100DE_DVI_4K,
} XI_ADAPTER_MODEL;

typedef enum _XI_DEVICE_TYPE {
	XI_DEVICE_UNKNOWN,
	XI_DEVICE_CVBS_CAPTURE,
	XI_DEVICE_HDVIDEO_CAPTURE,
	PRO_CAPTURE,
} XI_DEVICE_TYPE;

typedef enum _XI_COLOR_FORMAT {
	XI_COLOR_UNKNOWN,
	XI_COLOR_RGB24,
	XI_COLOR_RGB32,
	XI_COLOR_YUYV,
	XI_COLOR_YVYU,
	XI_COLOR_UYVY,
	XI_COLOR_VYUY,
	XI_COLOR_I420,
	XI_COLOR_NV12
} XI_COLOR_FORMAT;

typedef enum _XI_COMPRESSION_LEVEL {
	XI_COMPRESSION_SUPER_LOW,
	XI_COMPRESSION_LOW,
	XI_COMPRESSION_MIDDLE,
	XI_COMPRESSION_HIGH
} XI_COMPRESSION_LEVEL;

typedef enum _XI_ERROR_CODE {
	XI_NO_ERROR	= 0,
} XI_ERROR_CODE;

typedef enum _XI_H264_TARGETUSAGE {
	XI_TARGETUSAGE_UNKNOWN		= 0,
	XI_TARGETUSAGE_BEST_QUALITY = 1,
	XI_TARGETUSAGE_BALANCED		= 4,
	XI_TARGETUSAGE_BEST_SPEED	= 7
} XI_H264_TARGETUSAGE;

typedef enum _XI_H264_PROFILE {
	XI_PROFILE_UNKNOWN	= 0,
	XI_PROFILE_BASELINE = 66,
	XI_PROFILE_MAIN		= 77,
	XI_PROFILE_HIGH		= 100,
} XI_H264_PROFILE;

#define XI_Z_BOTTOM		255
#define XI_Z_TOP		0

#define XI_ALPHA_MIN	0
#define XI_ALPHA_MAX	255


typedef enum _XI_AAC_OBJECT {
	XI_AAC_MAIN = 1,
	XI_AAC_LOW = 2,
	XI_AAC_SSR = 3,
	XI_AAC_LTP = 4
} XI_AAC_OBJECT;

#ifdef __cplusplus
}
#endif

